package com.ftg.learn.chapter08;

import java.util.Arrays;

/**
 * @author kangjx
 * @date 2023/1/3
 */
public class Clazz {

    private String name;

    /**
     * 现有学生个数
     */
    private int index = 0;

    /**
     * 另外一个对象
     */
    private Student[] stus;

    public Student[] allStu(){
        return Arrays.copyOf(this.stus,this.index);
    }

    private final int default_capacity = 10;

    public Clazz(int capacity){
        this.stus = new Student[capacity];
    }

    public Clazz(){
        this.stus = new Student[default_capacity];
    }

    /**
     * 添加学生
     * @param stu 学生信息
     * @return
     */
    public boolean addStudent(Student stu){
        if(this.index < this.stus.length){
            this.stus[this.index++] = stu;
            return true;
        }
        return false;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static void main(String[] args) {
//        Clazz clazz = new Clazz(20);
//        clazz.setName("软件2212班");
//
//
//        Student stu = new Student();
//        stu.setName("张三");
//        stu.setAge(23);
//        stu.setSex('男');
//        stu.setClazz(clazz);
//
//        System.out.println(stu.getName()+"所在班级是"+stu.getClazz().getName());
//
//        Student stu1 = new Student();
//        stu1.setName("李四");
//        stu1.setAge(21);
//        stu1.setSex('男');
//        stu1.setClazz(clazz);
//        System.out.println(stu1.getName()+"所在班级是"+stu.getClazz().getName());
//
//
//        clazz.addStudent(stu);
//        clazz.addStudent(stu1);
//
//        Student[] ss = clazz.allStu();
//        for (int i = 0; i < ss.length; i++) {
//            System.out.println(clazz.getName()+"编组里面的"+ss[i].getName()+"姓名");
//        }



        Clazz clazz = new Clazz(20);
        clazz.setName("软件2212班");

        Student stu = new Student();
        stu.setName("张三");
        stu.setAge(23);
        stu.setSex('男');
        stu.setClazz(clazz);
//
//        GC： 回收机制 （垃圾）
//
//        找到垃圾 ?
//
//        什么样对象叫垃圾?
//
//        如果没有任何一个变化，指向这段地址 ? 有可能是垃圾? 不是马上执行?  生产垃圾速度 与  回收垃圾的速度

    }

}
